from django.http import HttpResponse, JsonResponse
import uuid
import json


def index(request):
    # 1.content：返回的内容
    # response = HttpResponse(content='<h1>知了课堂</h1>')

    # 2.status_code：返回的HTTP响应状态码
    # response.status_code = 400

    # 3.content_type：返回的数据的MIME类型，默认为text/html。浏览器会根据这个属性，来显示数据。
    # 如果是text/html，那么就会解析这个字符串，如果text/plain，那么就会显示一个纯文本
    # response = HttpResponse(content='<h1>知了课堂</h1>', content_type='text/html;charset=utf-8')  # TODO: HTML
    response = HttpResponse(content='<h1>知了课堂</h1>', content_type='text/plain;charset=utf-8')  # TODO: 文本

    # 4.设置请求头：response[key] = value
    response['X-TOKEN'] = uuid.uuid4()

    # 5.write：HttpResponse是一个类似于文件的对象，可以用来写入数据到数据体（content）中
    response.write('zhiliao')
    return response


def jsonview(request):
    # person = {
    #     'username': '张三',
    #     'age': 18,
    #     'height': 170
    # }
    # TODO: 传统方式响应json
    # json_str = json.dumps(person)
    # response = HttpResponse(content=json_str, content_type='application/json;charset=utf-8')  # TODO: json传输

    #   TODO: JsonResponse响应json
    # response = JsonResponse(person)
    # 默认情况下JsonResponse只能对字典进行dump，如果想要对非字典的数据进行dump，
    # 那么需要给JsonResponse传递一个safe=False参数
    persons = [
        {
            'username': '张三',
            'age': 18,
            'height': 170
        },
        {
            'username': '李四',
            'age': 20,
            'height': 180
        }
    ]
    response = JsonResponse(persons, safe=False)
    return response
